Skip to content
标签
工具
字数
886 字
阅读时间
4 分钟

一、概述

SpringBoot的配置以后主要使用yml结尾的这种文件格式,并且在书写时可以通过提示的形式加载正确的格式。

YAML(YAML Ain't Markup Language),一种数据序列化格式。具有容易阅读、容易与脚本语言交互、以数据为核心,重数据轻格式的特点。常见的文件扩展名有两种:

  • .yml格式(主流)
  • .yaml格式

语法格式:

  1. 大小写敏感
  2. 属性层级关系使用多行描述,每行结尾使用冒号结束
  3. 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  4. 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  5. #号 表示注释

二、使用

2.1 常见的数据书写格式

YAML
boolean: TRUE  						#TRUE,true,True,FALSE,false,False均可
float: 3.14    						#6.8523015e+5  #支持科学计数法
int: 123       						#0b1010_0111_0100_1010_1110    #支持二进制、八进制、十六进制
null: ~        						#使用~表示null
string: HelloWorld      			#字符串可以直接书写
string2: "Hello World"  			#可以使用双引号包裹特殊字符
date: 2018-02-17        			#日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00  #时间和日期之间使用T连接,最后使用+代表时区

​ 此外,yaml格式中也可以表示数组,在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

YAML
subject:
	- Java
	- 前端
	- 大数据
enterprise:
	name: itcast
    age: 16
    subject:
    	- Java
        - 前端
        - 大数据
likes: [王者荣耀,刺激战场]			#数组书写缩略格式
users:							 #对象数组格式一
  - name: Tom
   	age: 4
  - name: Jerry
    age: 5
users:							 #对象数组格式二
  -  
    name: Tom
    age: 4
  -   
    name: Jerry
    age: 5			    
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]	#对象数组缩略格式

2.2 springboot读取

  • 通过@Value可以读取单个数据

    属性名引用方式:${一级属性名.二级属性名……}。将该注解写在某一个指定的Spring管控的bean的属性名上方。

  • 通过Environment读取全部数据

    数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法时getProperties(String),参数填写属性名即可。该对象可使用@Autowired自动注入

  • 通过@ConfigurationProperties读取一组数据

    首先定义一个对象,并将该对象纳入Spring管控的范围,也就是定义成一个bean,然后使用注解@ConfigurationProperties指定该对象加载哪一组yaml中配置的信息(通过prefix指定哪些前缀的数据注入到匹配的属性中)。

2.3 注意事项

  • 数据引用

    yaml数据中,也可以定义某一配置,通过${配置名}来引用该配置

  • 数据包含转义字符

    需要使用转义字符,需要将数据字符串使用双引号包裹起来。

  • 数据类型转换问题

    当输入的数据为字符串类型但是是纯数字时,需按对于数字的定义支持进制书写格式来书写,尤其是以0开头的,如需使用字符串使用引号。